//
//  UnitTests.m
//  UnitTests
//
//  Created by DaiYue’s Macbook on 16/11/22.
//  Copyright © 2016年 Find the Lamp Studio. All rights reserved.
//

#import <XCTest/XCTest.h>

#import "HAMLogOutputWindow.h"

@interface UnitTests : XCTestCase

@end

@implementation UnitTests

- (void)setUp {
    [super setUp];
    // Put setup code here. This method is called before the invocation of each test method in the class.
}

- (void)tearDown {
    // Put teardown code here. This method is called after the invocation of each test method in the class.
    [super tearDown];
}

- (void)testEmptyText {
    [HAMLogOutputWindow printLog:@""];
}

- (void)testLongText {
    for (NSInteger i = 0; i < 100; i++) {
        [HAMLogOutputWindow printLog:@"button_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_t\nappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tapped\nbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tapped\nbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tappedbutton_tapped"];
    }
}

- (void)testOnGlobalQueue {
    XCTestExpectation *expectation = [self expectationWithDescription:@""];
    
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        [HAMLogOutputWindow printLog:@"test1"];
        [HAMLogOutputWindow clear];
        
        [expectation fulfill];
    });
    
    [self waitForExpectationsWithTimeout:1 handler:^(NSError * _Nullable error) {
    }];
}

- (void)testOnMainQueue {
    XCTestExpectation *expectation = [self expectationWithDescription:@""];
    
    dispatch_async(dispatch_get_main_queue(), ^{
        [HAMLogOutputWindow printLog:@"test1"];
        [HAMLogOutputWindow clear];
        
        [expectation fulfill];
    });
    
    [self waitForExpectationsWithTimeout:1 handler:^(NSError * _Nullable error) {
        
    }];
}

@end
